<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8" />
    <title>03-v-if指令的介绍</title>
    <link rel="stylesheet" href="../Bootstrap/css/bootstrap.min.css">
    <script type="text/javascript" src="../VueJs/vue.js"></script>
    <style>
        .box {
            width: 100px;
            height: 100px;
            background-color: #ccc;
            margin-top: 20px;
        }
    </style>
</head>
<body>
    <!-- 
        总结：
            a. 对比显示和隐藏的指令v-show， v-if 也可以实现元素的显示隐藏
                v-if 显示和隐藏并不是使用 display, 而是让元素进行销毁和重新创建
                在频繁切换显示的时候，会消耗性能，所以不建议频繁切换时使用
            b. v-if 一般用于界面渲染时，是否根据数据要求显示书写
                或者多个选项中，渲染其中一项的情景使用
            
            c. v-if 可以单独使用，也可以配合 v-else 使用
               也可以结合 v-if  v-else-if  v-else 整体使用
               v-else 不需要条件, v-else-if  可以有多次

            小总结： 这里的情景和js中的一致。

     -->
    <div id="demo">
        <div class="container">
            <h3>v-if的指令</h3>
            <hr>
            <button class="btn btn-success" @click="flag = !flag">按钮</button>
            
            <!-- v-if 在切换显示的时候，会移除元素，再生成元素 -->
            <div class="box" v-if="flag"></div>

            <!-- 三种标签，未完成，进行中，已完成 -->
            <button @click="tableData[0].num++">点我加加</button>
            <button @click="tableData[1].num++">点我加加</button>
            <button @click="tableData[2].num++">点我加加</button>
            <table class="table">
                <tr>
                    <td>电影任务</td>
                    <td>
                        <span v-if="tableData[0].num === 0" class="btn btn-success">未完成</span>
                        <span v-if="tableData[0].num  === 1" class="btn btn-primary">进行中</span>
                        <span v-if="tableData[0].num  === 2" class="btn btn-danger">已完成</span>
                    </td>
                </tr>
                <tr>
                    <td>综艺任务</td>
                    <td>
                        <span v-if="tableData[1].num === 0" class="btn btn-success">未完成</span>
                        <span v-else-if="tableData[1].num  === 1" class="btn btn-primary">进行中</span>
                        <span v-else class="btn btn-danger">已完成</span>
                    </td>
                </tr>
                <tr>
                    <td>旅行任务任务</td>
                    <td>
                        <span v-if="tableData[2].num === 0" class="btn btn-success">未完成</span>
                        <span v-else-if="tableData[2].num  === 1" class="btn btn-primary">计划中</span>
                        <span v-else-if="tableData[2].num  === 2" class="btn btn-warning">进行中</span>
                        <span v-else class="btn btn-danger">已完成</span>
                    </td>
                </tr>
            </table>
        </div>
    </div>

    <script type="text/javascript">
        //阻止 vue 在启动时生成生产提示。
        Vue.config.productionTip = false
    
        new Vue({
            el: '#demo',
            data: {
                flag: true,
                tableData: [
                    { num: 0 },
                    { num: 0 },
                    { num: 0 },
                ]
            }
        })
    </script>
</body>
</html>